﻿using _1_Interfaces.Models.Dtos.Cjw;
using _1_Interfaces.Models.Tables.Cjw;
using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace _1_Interfaces.Interfaces.Cjw
{
    /// <summary>
    /// 管理员管理
    /// </summary>
    public interface IAdminService
    {
        /// <summary>
        /// 管理员注册
        /// </summary>
        /// <param name="adminRegisterDto"></param>
        /// <returns></returns>
        bool AdminRegister(AdminRegisterDto adminRegisterDto);

        /// <summary>
        /// 管理员登陆
        /// </summary>
        /// <param name="adminName">用户名</param>
        /// <param name="adminPassword">密码</param>
        /// <returns></returns>
        AdminListDto AdminLogin(string adminName, string adminPassword);

        /// <summary>
        /// 上传图片,通过Form表单提交
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        string UploadPictures(IFormFile file);

        /// <summary>
        /// 获取员工信息列表
        /// </summary>
        /// <param name="adminName">员工姓名</param>
        /// <param name="sex">1、0</param>
        /// <param name="position">、前台管理、护士、医生</param>
        /// <param name="pageIndex">第几页</param>
        /// <param name="pageSize">一页几条</param>
        /// <returns></returns>
        GetAdminListDto GetAdminList(string adminName, string sex, string position, int pageIndex, int pageSize);

        /// <summary>
        /// 修改员工个人信息
        /// </summary>
        /// <param name="adminList"></param>
        /// <returns></returns>
        bool UpdateAdmin(AdminList adminList);

        /// <summary>
        /// 获取员工列表
        /// </summary>
        /// <param name="position"></param>
        /// <returns></returns>
        List<AdminList> GetAdminListByPosition(string position);

        /// <summary>
        /// 获取个人信息
        /// </summary>
        /// <param name="adminName">用户名</param>
        /// <returns></returns>
        AdminList GetMyInformationByAdminName(string adminName);
    }
}
